home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-21
/
dshell.zip
/
DSHELL.DOC
< prev
next >
Wrap
Text File
|
1992-02-06
|
140KB
|
3,961 lines
DSHELL Version 4.0
Copyright (C) D. G. Dempsey, 1991, 1992
All Rights Reserved
Copyright 1991 (C) D. G. Dempsey Page 1
DSHELL Version 4.0
Introduction to DSHELL
DSHELL consists of a command shell designed to run under DOS
and DESQview(TM) and provide multi-tasking process control, an
enhanced user interface and expanded script language
capabilities. The features provided by DSHELL include the
following set.
DSHELL provides a command line interface like DOS but with
capability of executing commands in automatically created
separate DESQview processes. Commands can be internal commands
(built-in to DSHELL), DOS internal commands (built-in to DOS
command.com), executable files (.COM or .EXE programs), command
scripts (DOS .BAT or DSHELL's own .SHL files), or even DESQview
OPEN menu programs. Commands can be executed in foreground (the
DSHELL command interpreter waits while you interact with the
running command) or background (the command interpreter
continues with your next command while the old command runs).
DSHELL provides default Program Information Files (PIF) to run
most .EXE, .COM, and .BAT programs which usually eliminates the
need for the creation and maintenance of these descriptions.
For specific cases where, either because of program, memory or
machine restrictions, the default PIF is not suitable, DSHELL
provides an easy mapping of particular programs to user
customized PIF files.
Commands and programs run by DSHELL execute in a environment
like DOS, i.e., all current disk paths, command line, and
environment variables are provided to the newly started program
(unlike DESQview alone which starts programs in a preset
directory with default environment variables). When a command
or program completes, its final exit code is available for both
foreground (like DOS) and background (via WAIT like UNIX)
programs.
The piping of standard output from one command/program into the
standard input of the next command/program is supported (like
DOS or UNIX). Like UNIX, this data transport uses an
inter-process pipe (in memory) between two simultaneously
running processes. This eliminates the disk performance and
space overhead often associated with DOS pipes (which are really
disk files). Redirection of standard input and output to disk
files and other devices is also supported.
Command line editing and management similar to recent versions
of the UNIX system is provided. Besides providing extensive
intra-command line editing capabilities, previously entered
commands can be recalled, edited, and re-executed (commonly
referred to as command histories). Aliases can be defined to
simplify the entry of complicated or less-than-memorable
commands. Multiple commands can be entered on a single line.
Multiple command lines can be entered together for multi-line
commands such as FOR loops.
In addition to the DOS style command line interface, a full
Copyright 1991 (C) D. G. Dempsey Page 2
DSHELL Version 4.0
screen interface is provided with full mouse support. This full
screen interface allows visual monitoring and rapid transversal
of directories. File types (extensions) can be associated with
specific commands, allowing a program (such as a spread sheet or
text formatter) to be invoked merely by selecting its working
files with the mouse. Direct access to the command line,
command history, and task switching are also provided in the
full screen interface.
User definable menus are supported. Menus can contain simple
commands with optional parameters. Such menus are supported by
simple setup tools for their definitions. Alternatively, using
DSHELL scripts, menus can be nested, have run time definable
contents, and vary as various options or activities are run.
Menu operations are mouse or keyboard driven. A menu selected
command can be any command sequence legal in DSHELL (subject to
some length limitations).
Default menus are provided for common system functions,
including the copying, moving, and deleting of files and
subdirectories as well as related disk and file maintenance
operations. Files and subdirectories can be tagged and handled
as groups for those and other operations such as running a
program against a set of files. Several forms for transversing
disk directories, including a directory tree, are provided.
Default menus are also provided for DSHELL maintenance
operations, such as maintenance of the PROFILE.SHL file (the
DSHELL equivalent of autoexec.bat). These operations include
defining default commands for specific file extensions, simple
menu creation, alias definitions, environment variable and
DSHELL display and operations options.
Available internal commands include an extensive set of internal
commands similar to those provided in a UNIX system (such as LS,
LF, CAT, CP, RM, PWD, TEST and EXPR). Commands can include
references to environment variables and embedded commands (the
output of one command can be part of the text of another). Full
support for the DOS PATH command searching is provided as well
as the ability to invoke external and script commands located in
other disk directories.
A script language (using files with a .SHL extension) is
provided. The language includes the UNIX style conditional
commands (IF - THEN - ELSE - FI and SWITCH - CASE - ENDSWITCH)
and looping constructs (FOR - BREAK - DONE). Scripts can have
parameters and can be nested (can have another DSHELL script as
a command). By using the TEST and EXPR commands, scripts can
perform extensive conditional testing, string test and
manipulation, and arithmetic operations. Using scripts, such
functions as printer spoolers, printer formatters and file
archivers can be constructed. Scripts can also be used to expand
existing commands (such as expand an editor to sequentially edit
a list of files instead of one file at a time). DOS .BAT
scripts are also supported.
Copyright 1991 (C) D. G. Dempsey Page 3
DSHELL Version 4.0
Process control for various DESQview specific operations is
provided through additional internal DSHELL commands. Using
these commands, a process can control its screen display window,
move between foreground and background, send and receive
inter-process ASCII mail messages, and schedule activities and
commands at specific times or after specific delays. Commands
are also provided to acquire and release control of user defined
common resources (thus preventing two processes from attempted
to simultaneously use an unsharable resource such as a common
file or device). A DSHELL process can also move its child
processes (those it created) between foreground and background,
set their initial screen windows, and send keystrokes to them
(as if the keystrokes had been entered from the keyboard).
DSHELL commands may be issued from DOS programs, including
COMMAND.COM and DOSSHELL, which allow execution of external
programs.
As an example of DSHELL's scripting capabilities, a printer
spooler application is included. The spooler allows three
levels of job priority, selection of multiple printers, optional
printer format control and queue maintenance. Spooler
operations can be invoked from the command line or from menus.
The operations supported by DSHELL are in addition to those
already supported by DOS and DESQview. All DOS and DESQview
operations, including commands and menus, remain available when
DSHELL is installed.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DOS refers to MSDOS, a trademark of Microsoft Corporation, and +
+PCDOS, a trademark of International Business Machines +
+Corporation, and refers to versions 3.0 and later. +
+ +
+DESQview (Trademark of Quarterdeck Office Systems) refers to +
+DESQview Versions 2.3 and later. +
+ +
+UNIX (Trademark of AT&T Bell Laboratories). +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Copyright 1991 (C) D. G. Dempsey Page 4
DSHELL Version 4.0
About This Manual
The following sections describe the operation, setup, commands,
and files necessary for the operation of the DSHELL programs.
Depending on your level of use, DSHELL can vary from relatively
user friendly (more friendly than DOS?) to a level of complexity
that rivals the UNIX shells after which it is modelled.
This file is a shortened form of the actual DSHELL operations
manual. In the interest of saving bulletin board resources, some
sections of the actual manual have been omitted that are not
absolutely essential to an evaluation of DSHELL. Most of the
omitted sections involve more detailed descriptions of the
numerous DSHELL internal commands and formats and will not
generally be needed outside of scripts and more sophisticated
operations.
Throughout this manual, the following typographical conventions
have been observed. Commands and parameters are indicated such
as
copy file1 file2
to identify commands and their components. Text which is meant
for additional information but not necessary essential for the
casual user is denoted by
+---------------------------------------------------------------+
|This line has limited use or interest. |
+---------------------------------------------------------------+
and you can skip it (at your risk of course) if you are doing
only normal things. In cases where a particular keystroke is
significant, the keystroke is shown in bold like F1. For
keystrokes which require holding the CTRL, ALT or SHIFT down
while pressing another key, the required action is shown as
ALT-A.
For operations involving a mouse, DSHELL uses only the left and
right mouse buttons. If you have a three button mouse, or press
both buttons of a two button mouse, DESQview menus are invoked
in the normal way. Within DSHELL, the right mouse button,
denoted as SELECT, is used to select an item (copying its name
or meaning to the command line) but not execute it. The left
mouse button, denoted as EXECUTE, is used to simultaneously
select and execute an item. Either button is acceptable for
operations which have no command significance, such as changing
the display mode or dropping down a menu. If you wish, you can
redefine the mapping of these buttons using either the DESQview
SETUP program or the DSHELL BUTTON command. If you do not have
a mouse, most DSHELL operations are equally accessible from the
keyboard. The few exceptions can be accessed using the DESQview
keyboard mouse simulator.
Some DSHELL features, such as disk format menus, are DOS version
or machine specific. The examples given in this manual are
generally what you will see on the display but some variation
may occur in some situations.
Copyright 1991 (C) D. G. Dempsey Page 5
DSHELL Version 4.0
If you are just interested in giving DSHELL a spin (or are real
familiar with DOS, DESQview and UNIX and don't mind an
occasional miscue in command formats), you can takeoff with the
section Installing DSHELL, followed by the Quick Start Tutorial
section, and use the remainder of the manual as a reference
(especially the section on Command Line Editing).
More serious and less experienced users should be prepared to go
through the whole manual, perhaps initially skipping the
sections on Inter-Process Communications, DSHELL Startup,
Tracking Processes, and Controlling the DESQview Process
Environment.
Copyright 1991 (C) D. G. Dempsey Page 6
DSHELL Version 4.0
Installing DSHELL
To install DSHELL, you must insure your system is configured and
equipped to support DSHELL. Once this has been done, the actual
installation is done by the INSTALL program and is highly
automated and pretty simple.
System Requirements
The following configuration is mandatory for using DSHELL.
1. A PC which is 100% PC-compatible. If it has trouble running
DESQview, it will have trouble running DSHELL under DESQview.
DSHELL, like DESQview, is best suited to 386 style (or
equivalent) machines but, provided other requirements are met,
does not require those processors. One area that is sensitive
to processor is performance. Operations that take a couple of
seconds on faster processors can require a minute (or longer!)
on more vintage machines.
2. DOS Version 3.0 or later is required. The package has been used
with versions 3.0-3.3 and 5.0.
3. DESQview Version 2.3 or later. The package is not compatible
with earlier versions of DESQview. DESQview 386 is recommended.
4. DESQview Common Memory must have at least 10K free bytes of
space. Installation will check for this amount and notify you
if it is not sufficient. This memory is required to allow
sufficient concurrent processes for typical operations and
installation to run. You can fine tune this after installation
if you desire less but running out of Common Memory is usually
fatal in DESQview and DSHELL. If you do not have enough, you can
increase it by running the DESQview SETUP program (it can be run
from with DESQview but you must restart DESQview for the changes
to be effective). DESQview LEARN must also be enabled.
5. A hard disk drive with the DESQview package installed. The
package requires about 0.5-0.7M of disk space. It is not necessary
the DSHELL and DESQview packages be on the same hard disk
although the DSHELL installation will pick that default unless
you specify otherwise.
6. DESQview compatible EMS memory (LIM-EMS 4.0) of at least 1.0
megabytes is required. Note that this is the type of expanded
memory which allows DESQview to run processes in it (not just
swap to it). Quarterdeck Office System's QEMM-386 is suitable.
DSHELL installation will test your expanded memory manager for
functional compatibility during the installation process. The
memory manager should be setup with at least 32 free handles
and named handles. The default installation for QEMM-386 is
suitable as is the default installation for MicroSoft's DOS 5.0
expanded memory manager. The 64K page frame must also be present
and may be located anywhere in high memory (above 640K).
Copyright 1991 (C) D. G. Dempsey Page 7
DSHELL Version 4.0
7. The conventional memory should be 640K with at least 320K
available for a DESQview process. Again, more is better.
8. For installation only, you must have a DESQview DOS 128K (or
larger) process (typically referred to as D1 on the DESQview
OPEN menu) available. If you wish, you can delete this entry
from the DESQview OPEN menu after installation.
9. An 80 column by 25 row (or larger) display is required. Color
is highly desirable but not essential.
10. A mouse or its equivalent is recommended. A few DSHELL
operations (like selecting a file from a screen directory
display) require a mouse. If you wish to perform such
operations, the DESQview keyboard mouse can be temporarily
turned on as a substitute.
The best choice is probably a 80386 or similar machine running
with QEMM as this will maximize DESQview's ability to perform
multitasking. However, other hardware and EMS platforms are
acceptable provided the DESQview and EMS 4.0 compatibility is
met. From a performance viewpoint, the DSHELL package makes
extensive use of multitasking under DESQview. Therefore, the
bigger and faster the system the better.
Performing the DSHELL Installation
To install DSHELL you must run the INSTALL program. The INSTALL
program will verify your system is suitably configured to
support DSHELL, unpack and load the DSHELL system onto your hard
disk, install DSHELL in DESQview, and build the startup script
PROFILE.SHL. The INSTALL program offers the option of either
having it do all the work (you only answer a few questions and
watch) or letting you do more of the work manually. Unless you
have problems with the installation (perhaps because your system
configuration is very unusual) or like to do things the hard
way, letting INSTALL do all the work is strongly recommended.
Except for the DSHELL directory and the DESQview OPEN menu
selection for DSHELL, most installation user selectable
parameters can be changed later by the DSHELL Change Profile
menus so your selection of installation parameters is not
critical. When in doubt, the default is probably best.
If you are installing a updated version of DSHELL, the
installation will detect that fact and preserve your old
PROFILE.SHL (provided you install in the same disk directory).
However, if you have modified any of the standard .SHL scripts
supplied with DSHELL, you should back them up before the
Copyright 1991 (C) D. G. Dempsey Page 8
DSHELL Version 4.0
installation as they will be overwritten with the new versions.
To install DSHELL, perform the following steps.
1. If you are installing DSHELL from a floppy disk, make a archival
copy of the floppy disk. Unlike some packages, DSHELL
installation does not attempt to write to the diskette but a
backup is always a good idea.
2. Determine the hard disk drive and subdirectory (not a root
directory) where you wish DSHELL to be installed. If you do not
specify one, the INSTALL program will create and use the
directory \DSHELL on the same drive as DESQview (typically drive
C:). If you do choose a different directory for DSHELL, it
cannot be the same directory as DESQview and its name, including
any prefixed path, must be less than 26 characters.
3. Bring up the DESQview package.
4. If necessary, you should terminate any other processes running
in DESQview. With the exception of any old DSHELL processes
from an earlier DSHELL version, this step is not essential but
it avoids the risk of unusual interactions or unusual resource
shortages.
5. Open a 128K (or larger) DOS window. Typically this is done by
going to the DESQview OPEN menu and selecting the D1 entry.
6. Within the DOS window, change to the drive and directory which
contains the DSHELL installation program and files. If you are
installing from a floppy disk, this is probably the drive A:
root directory. If you are installing the bulletin board
download version, this should be the drive and directory that
contains the unpacked INSTALL.EXE and DSHELL.LDF files.
7. Within the DOS window enter the command
install
to begin the installation.
8. At this point the install program will take over, asking for
verification and information as required. Assuming no system
deficiencies or problems are uncovered, after 2-5 minutes the
basic DSHELL files will be installed and a DSHELL process will
present a menu of installation activities, offer a recommended
selection (probably 1(new installation) or 2(updating a previous
installation)), and wait for your selection. Enter your
selection (the recommended is best) and answer any resulting
questions.
9. Installation will normally ask three basic questions: (1) what
screen color format do you wish (use default if you have a color
monitor, DESQview option otherwise), (2) what directory do you
wish to start in when DSHELL starts up (C:\ is usual choice),
and (3) what is your default choice for an editor (edlin or edit
Copyright 1991 (C) D. G. Dempsey Page 9
DSHELL Version 4.0
unless you specify otherwise). All these choices can be changed
later so, if you are not sure, leave the default.
10. At the end of the installation, the option of bringing up DSHELL
automatically on DESQview startup will normally be offered. If
you select this option, DSHELL will automatically be started and
be ready for your use whenever you start DESQview. If you
decline this option you will have to start DSHELL from the
DESQview OPEN menu. If you do decline and wish to add the
automatic startup later, you can do so by copying the file
STARTUP.DVS from the DSHELL directory to the filename
DESQVIEW.DVS in the DESQview directory.
At this point, the installation is complete. As you progress
with DSHELL, you will probably want to add to the startup script
PROFILE.SHL which was built during this installation. While you
can do this with any text editor, it is best to use the provided
menus and tools as they will help insure the format and allow
mapping of your changes should you upgrade DSHELL in the future.
If you encountered problems in the installation, first follow
the information given by the INSTALL package to see if you can
resolve the problem at that point. Then rerun the installation
program. See also the sections on Common Questions and License
Agreement and Support if necessary.
Copyright 1991 (C) D. G. Dempsey Page 10
DSHELL Version 4.0
DSHELL Tutorial
This tutorial is intended to provide a quick introduction to the
operation of DSHELL. It assumes you are familiar with DOS
COMMAND.COM (and/or a UNIX style shell), basic DESQview
operations (like task startup and switching), and have gone
through the sections About The Manual and Installing DSHELL.
Areas covered in the tutorial include using the supplied default
menus, executing programs in foreground and background,
spooling print jobs, defining default commands for particular
file extensions, and defining simple menus.
The tutorial does not cover more advanced operations (like
creating your own scripts or more sophisticated menus). Aspects
of those areas are covered in the other sections of the manual
and by example in the supplied default menus and scripts. The
tutorial assumes you installed DSHELL with the default options.
If you did not, you may have to make suitable adjustments as you
go.
For the tutorial, it is necessary to have a executable program
(besides DSHELL!) to run. The tutorial uses Borland
International's Quattro Pro, a popular spreadsheet program, as
an example but you can substitute any similar DOS program if you
don't have Quattro Pro. The program you select should be
interactive (i.e., it does not run to completion in the flash of
an eye) and have data files with a particular default extension
(like .WQ1 for the Quattro Pro example). The latter is
necessary to demonstrate the association of a particular command
with a particular data file type. Most any word processor or
spreadsheet program that runs under DOS should be okay.
To do the tutorial, you must have installed DSHELL (See the
INSTALLATION section) and be running DESQview and DSHELL as you
go through the tutorial. If you came here from the installation
process, you are all set. Otherwise, start DESQview and DSHELL
(the latter may be automatic or, if you did not select the
autoload option, from the DESQview OPEN menu). The tutorial
assumes a color display -- if you have a black & white display,
the colors will be mapped by DESQview into varying display
formats (light, bright, reverse video, etc.).
Managing the DSHELL Screen Display
DSHELL has two screen display modes: (1) normal (also called
command line) mode which looks much like the normal DOS display
(the dreaded C> prompt) and (2) full screen mode (what you are
probably looking at when DSHELL first comes up). When you are
entering commands, you can switch between the modes by pressing
F9 or clicking the mouse (on the 25th line in full screen mode
or anywhere in the DSHELL window in normal mode).
Normal Mode
In normal mode, you type commands and, as they execute, the
previous commands (and perhaps their output) appears in the
Copyright 1991 (C) D. G. Dempsey Page 11
DSHELL Version 4.0
window above your current command line. In both modes, the 25th
line, if visible, displays the current date/time/directory (the
directory is probably C:/ at this time). Pressing F10 displays
the DESQview SWITCH menu allowing you to switch quickly to other
processes. You can exit the SWITCH menu also by pressing ESC
ESC. The F10 key works anytime, even during the execution of a
command.
Full Screen Mode
In full screen mode, the top line displays the menu bar showing
your menus (only SYSTEM, the default menu is defined unless you
define additional menus of your own) and other options. The
next 23 lines display the current directory (normal files in
green, directories in yellow, special files in other colors) or
command history. F8 or clicking Hist/Dir on the menu bar
toggles between the directory/history displays. Pressing F10 or
clicking the Tasks field on the menu bar displays the DESQview
SWITCH menu to facilitate switching between different processes
(the parent DSHELL process is probably the only one running so
its a short list at this point). The 24th line is your command
line in full screen mode -- you can type a command here just as
you would in normal mode. The 25th line displays the current
date and default drive/disk directory.
We will return to the various screen displays later, but first,
let's look at executing programs under DSHELL. For now, type F9
until you see the normal (DOS-like) screen display.
Running Under DESQview/DSHELL Versus Running Under DOS
Aside from TSRs, when you run a program under DOS only that
program runs and is available to you. You cannot start or
interact with other programs until the first program completes
and the DOS prompt returns. DOS runs one program at a time and
that program has the whole machine -- even if the program only
uses a small portion of memory or other machine resources.
DESQview allows you to run many programs at the same time. It
does this by creating a set of virtual machines, each with its
own video display (a window), memory and other portions of your
computer's resources. It is easiest to think of these different
programs as a stack of windows where each window represents the
video display (and other resources) for that particular program.
Although each of the programs continues to run, you can
interact with only the program whose window is topmost on the
stack of windows -- only that program is allowed to receive
keystrokes from the keyboard or clicks from the mouse. Using
the DESQview SWITCH menu, you can change which program window is
topmost, allowing you to move among the programs and interact
with different ones as necessary. The topmost window and
program is called the foreground program (or process or task or
window), the others are called background programs (or processes
or tasks or windows). The foreground window, unless it is full
screen, is enclosed by DESQview with a double frame to make its
identification more obvious.
Copyright 1991 (C) D. G. Dempsey Page 12
DSHELL Version 4.0
With DESQview, you can create new windows (i.e., run new
programs) by launching a program from the DESQview OPEN menu.
Each program so started is independent of other programs, that
is to say there is normally no interaction between the different
windows. For example, you cannot pipe the output from one
program window to another (except manually). While you can run
programs independently, you are limited to doing such with
programs defined on the DESQview OPEN menu.
With DSHELL, you can start and run programs just like DOS but
these programs will run in separate windows just like the
programs you launch from the DESQview OPEN menu. The programs
can interact -- for example, the output of one command (window)
can be piped to the input of another window, or the actions in a
script of commands can depend on the completion (or completion
exit code) or other windows (programs).
Copyright 1991 (C) D. G. Dempsey Page 13
DSHELL Version 4.0
Entering and Executing Commands
Like DOS, to enter a command in DSHELL, you simply type it on
the command line and press ENTER. However, because DSHELL
operates in a multitasking system, where each task (process) has
its own virtual display (called a window), there are some
differences.
+----------------------------------------------------------------+
|To edit a DSHELL command line: |
|HOME and END move your cursor to the beginning or end of the |
| command line. |
|LEFT and RIGHT ARROW move your cursor along the command line. |
|BKSP deletes the character before the current cursor position. |
|DEL deletes the character at the current cursor position. |
|CNTRL K deletes from the current cursor position to the end of |
| the line if you are not at the end of the line. |
|CNTRL K deletes the line if your cursor is at the end of the |
| line. |
|UP ARROW recalls previous command lines (DOWN ARROW is reverse).|
+----------------------------------------------------------------+
In DOS, when you enter a command at the DOS prompt, the command
(usually a separate program unless it is a DOS internal command
like cd or mkdir) runs and you cannot enter another command
until the first one completes. In DSHELL, this is the default
behavior but you have other choices:
1. You can get the same behavior as DOS - simply type the command
as you would in DOS. The command runs as you watch -- DSHELL
waits (in a background window if necessary) for the command to
complete.
You would use this choice when you want to run a series of
commands which depend on each completing before the next begins.
An example would be formatting a floppy disk (the format
command) followed by copying some files to the floppy disk (the
copy command). In this case, you might enter
format a:
copy *.* a:
as an example.
+-------------------------------------------------------------+
|Note: Sometimes you start a command this way and then decide|
|you wish to continue on with DSHELL and let the command go on|
|running. You can end DSHELL's wait by going to the DSHELL |
|window and pressing CNTRL-C. DSHELL will abort the wait for |
|the command to finish, but not the command (unless the |
|command was an internal DSHELL command like cp or ffind). |
+-------------------------------------------------------------+
2. You can have the command execute in background while DSHELL
returns immediately to you for additional commands. The command
you entered will be running in the background (i.e., in a
display window behind the DSHELL display window). If you want
to interact with the command (program), you must move it to
Copyright 1991 (C) D. G. Dempsey Page 14
DSHELL Version 4.0
foreground using the DESQview SWITCH menu (F10 key). You get
this behavior by following the command with the string " &" (a
space followed by the ampersand).
You would use this choice when you want to run a program but do
not want to watch it run, interact with it, or wait for the
results. For example, if the diskette was already formatted,
and you would like the copy to proceed but don't really want to
watch and wait for it. In this case, you would enter
copy *.* a: &
for this example. While the copy continues in the background,
+--------------------------------------------------------------+
|This assumes your program can run in background under DESQview|
|-- if it cannot, it will be suspended (stopped) until you move|
|it to be the foreground (most visible) window. |
+--------------------------------------------------------------+
you can continue to do other things with new commands. Of
course, none of the new commands should depend on the copy
having completed (like deleting the files you wanted copied!)
until you are sure the copy has completed.
3. You can have the command execute in foreground, but have DSHELL
wait in background for you to enter another command when you
have temporarily finished with the initial command. An example
would be using the format command to start formatting a
diskette, then going back to the DSHELL window to do some other
things while the format completes. While you could do this with
the previous background execution option and the DESQview SWITCH
menu, you can do it more directly by appending the string " &
fore" to the format command:
format a: & fore
which is really two commands (the first, through the ampersand,
starts the format program in background, and the second, fore,
tells DSHELL to make the last process started the foreground
window).
You probably also use this third form for any programs you wish
to start and keep around for your computing session (like a
spreadsheet, database or perhaps word processor or multifile
editor).
With any of these forms, you can redirect standard input and
output to/from files or other devices. For example, to redirect
the output listing of the files in the current directory to file
in background, you would type
dir >file &
(note that the redirection must appear before the ampersand --
the ampersand marks the end of the entire dir command).
You can redirect output from one program window to another using
Copyright 1991 (C) D. G. Dempsey Page 15
DSHELL Version 4.0
a pipe much as you would in DOS. For example, to list the
current directory, sort it (more or less!), and then display it
in a paged format in a background window for future reference,
type
dir | sort | more &
which kicks off three processes and shuffles the data between
them as they run. Note the use of the more program -- without
it, the output of the sort would be written to the sort
program's window which would be closed and disappear as soon as
the sort was completed. More, because it waits for
+-----------------------------------------------------------------+
|Actually, this is the DSHELL version of more, which offers |
|several enhancements over its DOS counterpart -- like moving |
|backward as well as forward in the display and handling lines up |
|to 500 characters in length. You can terminate it by pressing |
|F9 or, like DOS more, simple press ENTER repeatedly. |
+-----------------------------------------------------------------+
confirmation even on a short list, insures you will have
something to look at when you finally want to look.
Sometimes, it is convenient to see the output of a command in
the DSHELL window. For internal DSHELL commands (like ls, the
DSHELL equivalent of the DOS dir command), you just type the
command, like
ls
which runs in the current DSHELL process and produces a list of
the files in the current directory. For external (other
programs), however, the output would be to that program's
DESQview window. For example, typing
dir
produces the directory listing as desired, but, since dir is a
separate program as far as DSHELL is concerned, the output
vanishes with the dir window as soon as the command finishes.
To make the input appear in the DSHELL window, you must pipe the
output into the DSHELL window by entering
dir | cat
where cat is an internal DSHELL command that takes its standard
input (the pipe from dir in this case) and copies it to its
standard output (the DSHELL window in this case).
You can have as many programs running simultaneously as your
computer's memory and related resources allow (and you can keep
straight!). You can even kick off additional DSHELLs (the
command is sh, no ampersand or fore required). Indeed, because
switching between programs (windows) with the DESQview SWITCH
menu is usually far faster than starting up larger programs
(like spreadsheets, database managers, and word processors), it
is usually faster to kick off those programs once and just
Copyright 1991 (C) D. G. Dempsey Page 16
DSHELL Version 4.0
switch between them as necessary.
Note that DSHELL will run most anything in separate windows --
other programs, .BAT scripts, .SHL scripts, even internal DSHELL
commands (when followed by an ampersand or pipe). About the
only commands that you probably should never run in separate
windows (i.e., follow with an ampersand or pipe) are those
internal DSHELL commands that directly affect the current DSHELL
environment, like cd (changes the current default drive and/or
directory for the current DSHELL) and fore (moves windows
relative to the current DSHELL process).
With the exceptions of TSRs (start them from a .BAT file) and
special programs requiring a DESQview loader (like Microsoft
Windows in protected mode -- execute their DESQview .DVP file),
most any program (command) legal in DOS is legal in DSHELL. By
default, each program is started in a virtual machine (window)
having maximum memory, a full screen display (text and
graphics), and two serial ports -- that should be suitable for
just about any program. See the section on Controlling the
Process Environment for and how to handle problem cases (or
non-386 processor systems).
Assuming you have done the examples, your screen, in normal
mode, displays the commands and some output from those commands.
By pressing F9, you can toggle between normal and full screen
mode -- note that the normal display and associated output
returns. You could have just as easily done this last exercise
in full screen mode (the 24th line is the command line) but the
output and previous commands would only be visible as the
commands execute or when you toggle back to the normal display.
Using Full Screen Mode
Press F9 until you have the full screen display. In this
section, you will see how you can "execute" directories and
files with a mouse (in full screen mode) and use the DSHELL
predefined menus.
Executing Files and Directories with a Mouse
In full screen mode, with the directory display (press F8 to
alternate between the history and directory displays in full
screen mode), you can "execute" any file or directory by
pointing to its name with the mouse and clicking the left
(called EXECUTE) mouse button.
If the name is a executable file (a .COM, .EXE, .BAT or .SHL
file), that action is equivalent to typing the filename (with
extension) on the command line and pressing ENTER -- the program
runs in a foreground window while DSHELL waits for its
completion.
Copyright 1991 (C) D. G. Dempsey Page 17
DSHELL Version 4.0
If the name is a subdirectory name (or ".." which is the parent
directory of the current directory), the action is equivalent to
the command
cd name
which simply means that directory becomes your new current
default directory. This provides a fast means of transversing
the disk directories and viewing their contents.
If the name is neither of the above, and its extension has been
associated with a "default" command, that default command,
probably using the file name as an argument, is executed. How
you associate extensions with commands will be discussed later.
If none of the previous three cases apply, DSHELL will invoke
your editor via the command
edit name
(edit is an alias for your editor's actual name) to edit "name".
If you do not have a mouse, you can still perform these
operations using the DESQview keyboard mouse (see the DESQview
manual for details). Note that any previous text on the command
line before you pressed the EXECUTE button is cleared and
remember that you must click the EXECUTE (left) mouse button --
the right mouse button (called SELECT) merely appends the name
to the command line -- no command is formed or executed.
Executing/Selecting Command History Entries
If you press F8 to display the command history, you can access
previously executed commands in a similar fashion -- pointing to
the desired command and clicking EXECUTE causes the command to
be rerun, clicking SELECT only copies the old command to the
command line for editing and subsequent execution. You can also
copy a history entry to the command line using the keystrokes
ALT A through ALT V. This usage is most convenient when you
want a command run several command lines ago -- it is simpler to
find the command this way than to search for it sequentially
with the UP ARROW keystroke.
Copyright 1991 (C) D. G. Dempsey Page 18
DSHELL Version 4.0
Menu Operations
DSHELL menus are available only in full screen mode. At any one
time, a DSHELL process can have up to 7 menus defined with their
names shown on the top line of the full screen display.
To display a menu, either press the corresponding function key
(F1-F7) or click the menu name with the mouse. When you do so,
the menu will drop down with the entries for the menu shown in
the boxed (normally blue) area below the menu name.
Each menu entry is a prompt and stands for a command which can
be executed by either clicking that line with the mouse EXECUTE
button or by typing the keycode(s) associated with that item.
For the default menus included with DSHELL, the keycode(s)
associated with a menu entry are given by the capital letter
(usually 1 but sometimes 2) or the question mark (?) shown on
the menu line.
+----------------------------------------------------------------+
|The convention for indicating the selection keycodes is |
|arbitrary and you can pick your own scheme for menus you create.|
+----------------------------------------------------------------+
To exit a menu without making a selection, press ESC or select
another menu.
Some menu items may require (or allow) parameters such as
filenames or other options. In the default menus, these items
are indicated by the ellipses (..) in the prompt. Such
+---------------------------------------------------------------+
|The convention here is also arbitrary, you can use your own |
|convention for your menus. |
+---------------------------------------------------------------+
parameters are taken from the contents of the command line (the
24th line) when the menu entry is executed. These fields must
be placed on the command line before the menu is dropped. You
can either type them in, or, for the frequent case of a
filename(s), use the SELECT (right) button on the mouse to copy
the names to the command line.
A menu entry can be any valid DSHELL command line subject to a
length limitation of 80 characters.
Menus are created, changed or deleted via the SHMOUSE command in
DSHELL scripts. Different invocations of DSHELL can have
different menus. The default SYSTEM menu, as well an any
default menus you create, are produced by the PROFILE.SHL script
run when DSHELL is started from the DESQview OPEN menu. Unless
changed, menus are inherited by subsequent DSHELL invocations.
The following sections describe the default menus. For best
results, go through these sections while displaying those menus
on your screen.
Copyright 1991 (C) D. G. Dempsey Page 19
DSHELL Version 4.0
Using Menus - The SYSTEM Menu
If you drop the SYSTEM menu (F1 or the mouse), you will see a
blue display containing the entries shown here (some entries may
be different if your hardware or software packages are
different). Clicking the line "drive A:" with the mouse EXECUTE
button changes your current disk/directory to the A: drive
(works best if you put a disk in the drive!). Similarly,
pressing "n" or "N" invokes the DESQview MANIFEST program (if
you have one). "Select directory" brings up a directory tree
for your current drive -- you can then pick the desired
directory with the mouse EXECUTE button to have DSHELL change to
that directory (F9 aborts the process with no change).
Some commands require a parameter(s) and are shown on the menu
by the inclusion of the ".." in a menu entry (such as the "ediT
.." which would invoke your editor to edit a specified file).
In these cases, you should enter the parameters on the command
line before you drop the menu either by typing the
filename/parameters or, in the frequent case of a file in your
current directory, by clicking the filename on the directory
display with the right (SELECT) mouse button. Once you have the
parameters on the command line, drop the menu and EXECUTE the
command as before.
If you drop a menu and then decide you need a parameter, click
off the menu or press ESC to clear the menu.
+--------------------+ NOTE: This online manual may not
|SYSTEM | quite correspond with the version
| drive A: | of DSHELL you are using and there
| drive B: | may be slight differences in the
| drive C: | menu entries provided versus those
| drive D: | described in this online manual.
| drive E: |
| maNifest |
| Home |
| Last directory |
| Select directory |
| ediT .. |
| vieW .. |
| Print .. |
| Remove .. |
| detaIl on files .. |
| file Operations |
| disK operations |
| enVironment |
| Memory usage |
| eXit |
| help? |
+--------------------+
The menu commands provided by the SYSTEM menu include the
following sets:
"drive X:" changes the current default disk to the indicated
Copyright 1991 (C) D. G. Dempsey Page 20
DSHELL Version 4.0
drive -- it is equivalent to the command "cd x:".
"maNifest" invokes the DESQview MANIFEST program to monitor
machine and memory usage. The parent DSHELL continues to run.
If your system does not include the MANIFEST program, this entry
will not be present.
"Home" changes to your defined home drive and directory (default
is C:\).
"Last directory" changes to the drive and directory you were
previously in.
"Select directory" builds a directory tree for your current
drive and allows you to change directly to any directory there.
"ediT .." invokes your editor for the indicated file (if any).
The parent DSHELL continues to run.
"vieW .." invokes the view (more) program to display the named
(ASCII) file. The parent DSHELL continues to run.
"Print .." invokes the DSHELL print spooler and sends the named
files to it to be printed.
"Remove .." deletes the named files/directories/subdirectories,
prompting for confirmation if wildcards or subdirectories are
involved.
"detaIl on files .." provides a "dir" style listing of the
specified files (default is all files in current directory) in a
paged window. The parent DSHELL continues to run.
"file Operations" creates a child DSHELL with file and DSHELL
maintenance menus for performing various file and DSHELL
maintenance operations. The parent DSHELL continues to run.
This menu set will be discussed in subsequent sections.
"disK operations" creates a child DSHELL with diskette
formatting and other maintenance menus for performing diskette
related maintenance. The parent DSHELL continues to run. This
menu set will also be discussed in subsequent sections.
"enVironment" displays a paged window with the current
environment variables and values. The parent DSHELL continues
to run.
"Memory" displays the current DESQview and DSHELL memory and
resource usages. Pressing F9 will return to the full screen
display.
"eXit" causes the current DSHELL to terminate. If that DSHELL
is the original invoked from the DESQview startup or OPEN menu,
the print spooler and multifile editor (if present) will also be
terminated.
Copyright 1991 (C) D. G. Dempsey Page 21
DSHELL Version 4.0
The remaining 6 menu slots on the top line of the full screen
display can be used for your own menus. The definition and
creation of such menus is done using the FILE OPERATIONS menus
discussed later.
Copyright 1991 (C) D. G. Dempsey Page 22
DSHELL Version 4.0
DISK OPERATIONS Menus
+--------------------+
|Format |
| Format type: |
| >>Native |
| 360k on 1.2m drv |
| 720k on 1.4m drv |
| Format options: |
| System |
| Unconditional |
| Quick |
| format A: now! |
| format B: now! |
| help? |
+--------------------+
Selecting "disK operations" on the SYSTEM menu invokes a DSHELL
script (diskops.shl) which creates and runs a child DSHELL with
menus for performing common floppy disk maintenance operations.
These operations include diskette formatting, copying and
comparing and use the standard DOS format, diskcopy and diskcomp
commands with a menu interface. To format a diskette, drop the
FORMAT menu, pick (EXECUTE) the format type desired (Native,
360K on a 1.2M drive, etc.) and the desired options (copy System
files to the diskette, others depending on your DOS version).
Selected format type and options are indicated by the ">>"
symbols. When you are ready, pick the "format A: now!" or
"format B: now!" entries to begin running the DOS format program.
The other DISK OPERATIONS menus, COPY and COMPARE, allow you to
copy and compare diskettes of the same type and format. Note
that selection of command on those menus requires two keystrokes
(typically the drive letters).
The last two DISK OPERATIONS menus allow you to display the
diskette directories and, when finished, exit the DISK
OPERATIONS process. At any time, you can switch back to the
original DSHELL (F10 drops the switch menu) to do other things.
While it is possible, it is not recommended that you attempt to
execute non-menu commands from the DISK OPERATIONS process.
Also, because disk format and copying operations are typically
limited to one at a time because of your system hardware, only
one instance of the DISK OPERATIONS process is permitted.
+----------------------------------------------------------------+
|CAUTION: When you format a floppy disk (or remove it or |
|otherwise tamper with its format), you must insure that no other|
|programs running are using that diskette. DSHELL attempts to |
|protect against this, but ultimately its up to you. The most |
|common problem is having another program (DSHELL or otherwise) |
|using that diskette as its current directory. |
+----------------------------------------------------------------+
Copyright 1991 (C) D. G. Dempsey Page 23
DSHELL Version 4.0
FILE OPERATIONS Menus
When you select FILE OPERATIONS from the SYSTEM menu, a new
DSHELL instance is created with menus tailored toward
file/directory maintenance, printer spooler operations and
various DSHELL/DESQview maintenance functions. Unlike DISK
OPERATIONS, this instance can be used to execute your commands,
just like the original (and still available) DSHELL instance,
and, if you can keep things straight(!), you can have multiple
copies of the FILE OPERATIONS DSHELLs running simultaneously.
+--------------------+
|SYSTEM |
| drive A: |
| drive B: |
| drive C: |
| drive D: |
| drive E: |
| Home |
| Last directory |
| Select directory |
| fresheN dirs |
| ediT .. |
| vieW .. |
| Print .. |
| Remove .. |
| detaIl on files .. |
| disK operations |
| eXit |
| help? |
+--------------------+
There are seven menus available on the FILE OPERATIONS instance.
The first, titled System, is basically the same as its parent
DSHELL counterpart. One new menu entry, fresheN dirs, allows
you to force the Select directory entry to rebuild its directory
lists (normally this is automatic any time you modify a disk's
directory structure within DSHELL -- this entry allows you to
force the rebuild if the structure is changed outside of
DSHELL). The seventh menu, Exit, simply exits the FILE
OPERATIONS package. The remaining five menus provide the
general file and DSHELL maintenance operations and are generally
designed to operate on groups of files/directories. These
groups are referred to as tag lists. To operate on the files,
you first define the group (the tag list) then perform the
operation.
Copyright 1991 (C) D. G. Dempsey Page 24
DSHELL Version 4.0
FILE OPERATIONS - Tag Menu
+---------------------+
|Tag |
| Tag .. |
| All like .. |
| incl Sys/hid |
| incl Directories |
| Remove a tag |
| View taglist |
| Purge tag list |
| Export list as .. |
| Import .. as list |
| help? |
+---------------------+
To define a tag list, place the names of the files/directories
on the command line using the mouse SELECT button (or by typing
the names on the command line). Then drop the Tag menu and
execute the Tag .. command to add the items to the tag list.
You can repeat the tagging sequence as many times as necessary
(with perhaps directory changes in between) until you have
constructed the list you wish to operate on (the tagging
operation is additive until you perform an operation with the
tag list). Then proceed to the other menus to perform the
desired operation. The Tag menu offers several tag list related
commands:
Tag .. - adds items on the command line to the current tag list.
Wild cards (* and ?) are expanded as the items are added.
+------------------------------------------------------------+
|Hidden, system and directories are included in wild card |
|searches for the Tag .. command. |
+------------------------------------------------------------+
All like .. - same as Tag .. except that wild cards are not
expanded until your final operation is performed. This command
is generally used only when you wish to build a tag list for
future use (such as the Import and Export list commands further
down the menu).
incl Sys/hid - applies only to the All like .. command and lets
you specify that system and hidden files should be included in a
wild card selection (for file copy/rename/move/remove
operations).
incl Directories - applies only to the All like .. command and
lets you specify that directories matching a wild card
specification should be included.
Remove a tag - lets you examine the current tag list and, by
clicking the mouse EXECUTE button on the appropriate entry (one
per line), delete entries you don't want included in the list.
View taglist - lets you view the current tag list.
Copyright 1991 (C) D. G. Dempsey Page 25
DSHELL Version 4.0
Purge tag list - deletes all entries in the current tag list
(insures an empty list).
Export list as .. - saves the current tag list as a specified
file which you can import later if you wish to use the same list
again.
Import .. as list - takes the contents of the specified file as
the current tag list (this file should be the result of a
previous Export command).
The tag list can include both files and directories. By
default, a directory includes all files and subdirectories
within it.
Copyright 1991 (C) D. G. Dempsey Page 26
DSHELL Version 4.0
FILE OPERATIONS - Tag Ops Menu
+-------------------+
|Tag Ops |
| Copy tagged to .. |
| Move tagged to .. |
| Rename tagged .. |
| Delete tagged |
| Edit tagged |
| View tagged |
| eXecute .. tagged |
| help? |
+-------------------+
Once you have defined the list, drop the appropriate third,
fourth, fifth or sixth menu to perform your operation. The
third menu, Tag Ops, contains the most common operations:
Copy tagged to .. - To copy a list of files/directories to a
specified drive/file/directory, enter the target's name on the
command line and execute this entry. The name can include wild
cards (renaming occurs as the copy is done) and subdirectories
as necessary will be created if required. Of course, the target
must be compatible with items on the list (you cannot copy a
directory to a file or copy many files to one file). If the
target does not already exist, it will be created in an
intelligent manner. Note that, if you copy a directory to an
existing directory, it becomes a subdirectory in the target
directory but, if you copy a directory to a non-existent
directory, it becomes the directory.
Move tagged to .. - Same as Copy except the items are moved and
the target must be on the same logical disk -- to move across
drives, do a Copy then a Delete.
Rename tagged .. - Changes names of files/directories. Move can
also do this but Rename resolves the inconsistency that can
sometimes occur in a directory rename.
Delete tagged - Deletes the tagged entries including
subdirectories. Note that a directory will be deleted only if
all the files/subdirectories in it can be deleted.
Edit tagged - Edit the files in the tag list -- directories are
ignored.
View tagged - View the contents of the files in the tag list.
eXecute .. tagged - For each item in the tag, the command found
on the command line is run with the item name as a final
parameter.
Upon successful completion, the tag list is emptied.
Copyright 1991 (C) D. G. Dempsey Page 27
DSHELL Version 4.0
The fourth menu, At(t)ribute, applies only to files (or files in
+-------------------+
|Atribute |
| Change tagged To: |
| Set Readonly |
| Clear Readonly |
| Set System |
| Clear System |
| Set Hidden |
| Clear Hidden |
| Set Archive |
| Clear Archive |
| help?? |
+-------------------+
directories) and allows you to change the DOS attributes of the
files. To change the attributes, pick the Set/Clear options for
the attributes you wish to change (selecting neither is no
change for that particular attribute) then pick Change tagged
To: to perform the change. Note that entries on this menu
require two keystrokes if you are using the keyboard. You
cannot change the attributes of directories or of files in a
readonly disk partition (or a write protected floppy disk). As
in other operations, the tag list is cleared upon successful
completion of the changes.
Operations on both these menus can take time if many files and
directories are involved. While the operation is running, you
can switch to other tasks to perform other operations however.
Copyright 1991 (C) D. G. Dempsey Page 28
DSHELL Version 4.0
The fifth menu, Print, provides for printing the tagged files
+---------------------+
|Print |
| Print tagged |
| Device: PRN |
| modE: RAW |
| formAt:auto |
| High priority |
| >>Medium priority |
| Low priority |
| Formfeed after |
| View queues |
| Remove queue entry |
| Kill all queues |
| make permaNent |
| Stop spooler |
| spOol command .. |
| prinT/remove |
| help? |
+---------------------+
via the print spooler and access to the more elaborate printer
spooler options. This menu provides the following functions:
Print tagged - the files on the tag list are sent to the printer
spooler for printing. If the spooler is not running, it is
loaded and started. Priority, output device and format are as
selected on the menu at the time the files are spooled.
Device: dev - Normally the print spooler outputs to PRN device
but other devices can be specified by picking this option.
modE: xxx - This selection controls the handling of special
characters in print files (most commonly, the CNTRL Z end of
file flag) -- generally you won't need to change this but
picking this option allows you to select other handling options.
formAt: xxxx - The print spooler has filters for handling
special printers (such as Adobe Postscript and other laser
printers). Picking this entry allows you to select from the
available printers and specify special printing formats such as
font size, portrait or landscape printing. If you do not change
this entry from its default (none), no special formatting is
performed. If you have multiple printers on different device
ports, you can specify different formatting on a by port basis.
High/Medium/Low priority - The print spooler maintains three
levels of print queues and you can change the level jobs are
sent to by picking these items. Jobs in higher priority queues
are printed before jobs in lower priority queues but entering a
job in a higher priority queue will not pre-empt a running job.
New jobs are placed at the end of their respective queues.
Formfeed after - If selected, a formfeed will be sent to the
printer at the end of each job to insure that each job starts on
Copyright 1991 (C) D. G. Dempsey Page 29
DSHELL Version 4.0
a new sheet of paper. Not recommended for printers which do not
understand formfeeds (like Postscript printers).
View queues - Displays jobs currently spooled.
+----------------------------------------------------------------+
|Note that, if you have just queued a job and the spooler is |
|still printing a previous job, the new job will not appear in |
|the queues until the current print finishes -- the spooler only |
|updates the queues between print jobs. |
+----------------------------------------------------------------+
Remove queue entry - Allows you to remove an entry from the
currently selected priority queue. The spooler queue is locked
while you perform this removal. You cannot remove the job
currently printing.
Kill all queues - Deletes are queued spooler jobs.
make permaNent - Makes the current device, format, priority and
formfeed options the defaults. These defaults are used when you
first bring up a FILE OPERATIONS instance or when you print via
the Print .. command on the system menus.
Stop spooler - Shuts down the print spooler at the end of the
current print job. Any jobs remaining in the queues will be
preserved and printed the next time the spooler is started.
+----------------------------------------------------------------+
|If you want to temporarily stop a print job, use the DESQview |
|Freeze option. You can kill a job while it is printing by |
|switching to the spooler window, typing CNTRL Z, and telling the|
|spooler to continue. |
+----------------------------------------------------------------+
+----------------------------------------------------------------+
|If you are using a Postscript formAt option, you have to also |
|close the postscrip process windows. |
+----------------------------------------------------------------+
spOol command .. - The spooler actually spools commands (a file
print is really a command to copy the file to the printer
device). Picking this entry sends the contents of the command
line to the spooler for in turn execution. If the spooler has
been shutdown (Stop spooler) and no command is specified, this
selection will restart the spooler.
print/Remove - Same as the Print tagged selection except that
the files are deleted after being printed.
By default, the print spooler is started when you start DSHELL
if there are jobs queued.
Copyright 1991 (C) D. G. Dempsey Page 30
DSHELL Version 4.0
FILE OPERATIONS - DSHELL Menu
The sixth menu provides access to various DSHELL setup and
+---------------------+
|Dshell |
| Edit dshell pif |
| Tagged -> spawnpif |
| Del spawnpif entry |
| View spawnpif |
| Change profile |
| help? |
+---------------------+
maintenance functions. These operations allow you to specify
special treatment for specific programs and customize your
DSHELL startup script (PROFILE.SHL) to provide your own menus,
default commands, screen colors and other options. (See the
sections on PROFILE.SHL and Controlling the Process Environment
elsewhere in this manual for more detailed discussions of these
applications.) The operations include the following:
Edit dshell pif - The DSHELL pif files (in the DSHELL directory
with filenames like 00-pif.dpf) provide the various DESQview
virtual machine environments for running general (the 00-pif.dpf
file) and specific (the others) programs. This entry will let
you modify existing or create new ones.
Add spawn tagged - Executable programs (.EXE, .COM and .BAT
files) are associated with the DSHELL pifs by what is called a
spawn list (SPAWNPIF.SET in the DSHELL directory). Programs not
on that list (the usual case) are run in the default environment
(i.e., use pif 00-pif.dpf). If you have a program that requires
special treatment, tag that program with the Tag menu and select
this entry to setup the treatment. Submenus will allow you to
select or create a pif if necessary and assign other special
treatments. If you have several programs that you want to get
the same treatment (like well-behaved programs requiring no
screen virtualization for pre-386 processors), tag them all and
then come here.
Delete spawn entry - This entry allows you to delete the special
handling for a specific program by deleting its line in the
SPAWNPIF.SET file.
View spawnpif - Lets you view the current entries in the
SPAWNPIF.SET list.
Change profile - Starts a new DSHELL instance with menus for
customizing your PROFILE.SHL startup script as described in the
section DSHELL STARTUP - PROFILE.SHL. Here you can customize
your screen colors, define command aliases and environment
variables, setup default commands for specific file types
(extensions), define your own menus and modify various DSHELL
setup options.
Copyright 1991 (C) D. G. Dempsey Page 31
DSHELL Version 4.0
Example 1: Formatting a Floppy Disk
For practice, let us format a floppy diskette which we will use
in the next example to make a backup copy of your installed
DSHELL files. This disk should have a capacity of at least
720K. You could do this by entering the DOS format command just
as you would from DOS but we will use the Disk Operations menus
instead.
1. Place a floppy diskette to be formatted in drive A: (or B: if
you wish).
2. Drop the SYSTEM menu (F1 or mouse) and select the disK
operations entry (K or click line with mouse EXECUTE (left)
button).
3. After a few seconds, the Disk Operations menus appear.
4. Drop the Format menu (F1 or mouse) if it is not already
displayed.
5. Pick the format type (probably Native) by typing the appropriate
letter (probably N) or clicking the desired menu entry with the
mouse EXECUTE button. A ">>" will appear on the selected line
indicating the selected format type.
6. We don't need to put the DOS system files on the disk (or use
any of the other options if you have DOS 5.0), so we can skip
setting any of them.
+-----------------------------------------------------------------+
|If any are selected (indicated by a ">>"), click or type the |
|appropriate keystroke to turn those options off (the options are |
|binary). |
+-----------------------------------------------------------------+
7. To begin the format, click the "format A: now!" (or "format B:
now!" if you are using the B: drive) with the mouse EXECUTE
button (or type A or B).
8. Your DOS formatting program will run and prompt you for
confirmation of diskette in drive. Provide the appropriate
responses to perform the format until the format program
terminates. While the copy is running, you could return to the
main DSHELL if you wish to do other things while waiting for the
format to complete.
9. The Disk Operations window will return.
10. Exit the window by pressing F7 and E to drop the Exit menu and
confirm the exit. The main DSHELL window will return and the
format is complete.
Copyright 1991 (C) D. G. Dempsey Page 32
DSHELL Version 4.0
Example 2: Copying Files and Directories
We will now make a backup copy of the installed DSHELL
directories and files. We begin on the SYSTEM menu of the main
DSHELL (DSHELL Version 4.0 on your DESQview SWITCH menu).
1. Start up the File Operations window by dropping the SYSTEM menu
(F1 or mouse) and execute the "file Operations" entry (O or
click line with mouse EXECUTE button).
2. You must go to the drive containing the DSHELL directory if you
are not already there. To do so, drop the System menu (F1 or
click with mouse) and type the letter (probably C) of the
desired drive (or click the drive line with the mouse EXECUTE
button).
3. Since we want to copy the entire DSHELL directory, including its
files and subdirectories, we must go to the directory which
contains the DSHELL directory (probably C:\). If you are not
already there, you can get there by dropping the System menu (F1
or mouse), typing S to run the "Select directory" entry, and
then, when the directory tree is displayed, clicking the
appropriate line (probably C:/) with the mouse EXECUTE button.
You can also get there by clicking the appropriate directory
names (remember .. moves back up the directory tree) until you
see the DSHELL directory.
4. To copy the DSHELL directory, we must first tag it. With no
menus dropped, click the DSHELL directory name with the mouse
SELECT (right) button to place the name on the command line (or
just type the name if you wish).
5. Drop the Tag menu (F2 or click with mouse) and execute the "Tag
.." entry (T or click line with mouse EXECUTE button). The
command line should clear and the Tag menu disappear. You have
created a tag list contain one entry, the DSHELL directory.
6. Before going to the "Tag Ops" menu to do the copy, we need to
place the target drive on the command line so type
a:
on the command line but DO NOT press ENTER.
7. Drop the "Tag Ops" menu (press F3 or click with mouse) and
execute the "Copy tagged to .." command (press C or click line
with mouse EXECUTE button). The copy will begin, listing the
files and subdirectories as they are copied. The copy can take
several minutes depending on your system.
Copyright 1991 (C) D. G. Dempsey Page 33
DSHELL Version 4.0
8. When the copy has completed, select the Exit menu (F7) and exit
(E) to return to the main DSHELL.
+--------------------------------------------------------------+
|We should note in passing that, while menu driven systems are |
|nice for your memory, they are usually not the shortest or |
|fastest way. In this case, the operation could have been |
|equally replaced by the single command |
| |
|cp -vesd dshell a: & |
| |
|which (although a bit cryptic) does the same thing. |
+--------------------------------------------------------------+
Copyright 1991 (C) D. G. Dempsey Page 34
DSHELL Version 4.0
Example 3: Defining a Default Command
Let us now create a default command to be run anytime you select
a Quattro Pro database file (these files typically end in the
extension .WQ1 for example). First, we need to determine what
is the command to be run with such a file. In this case, the
command might be (assuming the filename is "xxxxx.wq1")
q xxxxx.wq1 & fore
if the directory to Quattro Pro is in your DOS path or perhaps
c:\qpro\q xxxxx.wq1 & fore
if the Quattro Pro directory is not in your normal DOS path. We
have added the " & fore" to insure that our DSHELL continues to
accept commands if we temporarily leave Quattro Pro to do
something else.
At this point, you should try this command in your system (or
its equivalent if you are substituting something similar) to
insure that it works. When you are sure, return here and
perform the following steps. To define a new default or main
DSHELL menu, we must add the information to the DSHELL startup
script PROFILE.SHL and restart DSHELL.
1. Create a File Operations DSHELL from the SYSTEM menu (or, if the
DSHELL backup has completed, just switch to that File Operations
DSHELL).
2. Drop the Dshell menu (F6 or click with mouse) and pick the
Change profile entry (C or click with mouse EXECUTE button).
3. After the Change Profile DSHELL comes up, press F4 (or click
Defaults) to drop the Defaults menu.
4. We wish to define a new default command so press A (or click the
Add default entry with the mouse EXECUTE button). A list of
options and prompt appears.
5. We will first define the extension (.wq1) so type 1 and press
ENTER. Then type the extension
wq1
and press ENTER. The options list reappears showing your
extension.
6. We will now define the command so type 2 and press ENTER.
7. The screen now prompts for the command. We will enter the
command as we used it with one slight change -- we must indicate
where to put the filename (the xxxxx.wq1 in our example). To do
so, enter your command substituting a caret (^) for where you
want the filename to appear:
Copyright 1991 (C) D. G. Dempsey Page 35
DSHELL Version 4.0
c:\qpro\q ^ & fore
and press ENTER.
8. The options list reappears with your command and extension
specified.
9. If you want to make a change, you can reselect 1 or 2 to change
them.
10. When you are happy with the extension and command, press 3
followed by ENTER to commit the default.
11. You will return to the Change Profile screen display.
You have completed the definition of the default command.
However, it will not be available until you exited and restarted
the current DSHELL session. Let us proceed to the next example
before doing so since it will necessitate the same restart.
Copyright 1991 (C) D. G. Dempsey Page 36
DSHELL Version 4.0
Example 4: Defining a Menu
In this example, we will create a menu containing the command to
start the Quattro Pro program. As in the previous example, we
assume the command is of the form
c:\qpro\q xxxxx & fore
where xxxxx is the optional spreadsheet file and the "& fore"
has been added to allow the DSHELL to remain available for other
commands. Like the default command, a menu entry in the initial
DSHELL menus is defined in the startup script PROFILE.SHL. To
modify PROFILE.SHL, we will use the File Operations - Dshell -
Change Profile menus:
1. Assuming you have just done Example 3 (Defining a Default
Command), you are already in the Change Profile menus. If you
are not, go there either by switching to it (if the Change
Profile DSHELL is running) or bring it up by going through the
first two steps in Example 3.
2. In the Change Profile menus, drop the Menus menu (press F5 or
click with mouse). You will see a list of the currently defined
menus (probably only the first, SYSTEM, is defined). Select the
second (or first undefined) menu slot (press 2 or click that
line with the mouse EXECUTE button). This selects the
particular menu slot we will be working with.
3. As no menu has been defined for slot 2, you will be prompted for
a 1-8 character name to be placed on the menu bar (top line of
the full screen display) for this menu. Type
General
and press ENTER to title the new menu "General".
4. You will now be presented with a list for
adding/deleting/editing menu entries (commands and prompts) for
the entries on your new "General" menu. Execute the "Add menu
entry" line (press A or click line with mouse EXECUTE button).
5. You will be presented with a list of options to define the
keystroke(s) to select your new entry, define the prompt to
appear on the menu for it, and to define the command to be run.
6. Type 1 and press ENTER to setup the keystroke to select this
menu. We will use the letter Q so type
Q
and press ENTER. The list will repaint, showing your keystroke
Q as the keycode.
7. We will use the prompt "Quattro pro ..", so type 2 and press
ENTER. The screen will ask for the menu prompt to be entered.
Type
Copyright 1991 (C) D. G. Dempsey Page 37
DSHELL Version 4.0
Quattro pro ..
and press ENTER. The screen repaints with your keycode and menu
prompt shown.
8. To enter the command, type 3 and press ENTER. Then type the
command
c:/qpro/q ^ & fore
and press ENTER. Note, as in the case with the default
commands, we have substituted the caret (^) where we want the
optional parameters (a filename most likely in this case) to be
placed. The screen repaints showing your keycode, prompt and
command line.
9. If you have made an error, repeat steps 6, 7 and 8 as necessary.
10. When you are happy with the entries, type 4 and press ENTER to
commit the menu entry. The Change Profile menus will return.
11. We are now complete with the changes we wish to make to the
PROFILE.SHL to define a default command and a new menu (with 1
entry). You could add other defaults or menus or menu entries
by repeating the necessary commands.
12. To make the changes effective, we must rebuild the PROFILE.SHL
script (the changes so far are kept in temporary files). To do
so, drop the Exit menu (F7 or click with mouse) and select the
"Exit, new profile" entry (E or click line with mouse EXECUTE
button).
13. The PROFILE.SHL script will be rebuilt, you will be reminded
that you must restart DSHELL to see the changes, and you will
return (probably) to the File Operations DSHELL.
14. To restart DSHELL, first exit the File Operations DSHELL by
dropping the Exit menu and executing the Exit line. Then exit
the main DSHELL by dropping the SYSTEM menu and executing the
"eXit" entry. If you had any other DSHELLs running (like the
Disk Operations DSHELL), you will have to exit them also.
15. You should now be back at the DESQview main menu, so restart
DSHELL by going to the OPEN menu and selecting the "DSHELL
Version 4.0" entry.
16. After your DSHELL restarts, you will see a second menu, General.
You can now start Quattro Pro by dropping that menu and
executing the command "Quattro pro ..". If you place the name
(and path if necessary) of a Quattro Pro spreadsheet on the
command line first, that spreadsheet will be displayed by
Quattro Pro.
17. To use the default command we created, you must first exit the
Quattro Pro window created in the previous step (Quattro Pro
Copyright 1991 (C) D. G. Dempsey Page 38
DSHELL Version 4.0
does not generally like to see two copies of itself running at
once!).
18. To execute the default command, go to a directory that has a
Quattro Pro .WQ1 spreadsheet file and click that filename with
the mouse EXECUTE button. Quattro Pro should come up displaying
that file.
Copyright 1991 (C) D. G. Dempsey Page 39
DSHELL Version 4.0
Example 5: Running a DSHELL Command From DOS
Sometimes it is convenient to issue a DSHELL command from DOS or
some other program rather than going back to the DSHELL window.
Examples might include a .BAT script in DOS, the DOS 5 DOSSHELL
program or a makefile where you wish to run another program in
its own process (more memory) or run a command that is only
available in DSHELL (like a .SHL script). Provided the program
provides a DOS command line capability and access to expanded
memory, you can issue such commands by using the DSHELL.EXE
+-----------------------------------------------------------------+
|Some programs meet the first requirement but not the second. |
|Quattro Pro, for example, normally uses all expanded memory |
|allocated to it for its own use. The DSHELL program must have |
|access to expanded memory (2 pages) to run. |
+-----------------------------------------------------------------+
program. For example, you can use the DSHELL REMOVE command
+---------------------------------------------------------------+
|Before doing so, you must put DSHELL.EXE someplace where the |
|originating program can find it. The \DOS directory is often |
|good. |
+---------------------------------------------------------------+
to delete files/directories from a DOS window (like D1) by typing
dshell remove xxx
where xxx is the stuff you want to remove. The command has the
same general format as it would in DSHELL except you have
prefixed it with the dshell program. Normally, dshell will wait
for the command to complete before returning, but you can
include an ampersand (&) or (& fore) just as you would in DSHELL
to prevent the wait.
Sometimes the program from which you issue the dshell command
will attempt to process the command line itself (DOS will in
this example if you attempt to redirect input/output). To
prevent this, try enclosing the command (following the dshell)
in double quotes.
Copyright 1991 (C) D. G. Dempsey Page 40
DSHELL Version 4.0
How DSHELL Works
This section describes how DSHELL works as it processes your
commands. While not essential knowledge, it can be useful in
understanding how and why things happen the way they do. If you
desire, you can skip this section.
Initially, the DSHELL program (shell.exe) is started from the
DESQview OPEN menu, either by you or by a DESQview startup
script, and executes the script PROFILE.SHL before appearing to
you as your user interface in either full screen or command line
mode. As you enter commands, this parent DSHELL process either
executes the command itself (internal commands) or creates other
DESQview processes (called child processes) to execute the
command (scripts, .DVP, .EXE, and .COM files). If you did not
choose background execution for the command, the parent DSHELL
process waits until the command completes before accepting
further commands (like DOS). If you specified background
execution, then the parent DSHELL process returns immediately
for further commands while the old command continues running in
its own process.
If the command was a .SHL script, a backgrounded internal
command or a request for an additional interactive DSHELL
instance, the child process is a copy of the original parent
DSHELL process, inheriting all of its system environment from
the parent DSHELL process at the time of the child's creation.
If the command was a .BAT, .COM, or .EXE file, the new process
first invokes a special loader to get its environment from the
parent DSHELL process and then loads and executes the program.
In either case, when the child process completes, its final exit
status is returned to the parent DSHELL process.
Note: If the command is a .DVP file, a child process is created
using the .DVP file instructions, but the environment is limited
to that provided by DESQview and exit code processing is not
available.
If the command line specifies that the standard output of one
command (a child process) is to be used as the standard input of
a second command (another process), the loader (or the child
DSHELL process itself) creates and operates the inter-process
pipe between the two processes.
Any number of child processes and other DESQview processes can
coexist limited only by system resources (and operator sanity).
If the child process is itself a DSHELL process (that is a
process running DSHELL), it can itself have other child
processes with the same scope and capabilities as the original
parent DSHELL process.
Copyright 1991 (C) D. G. Dempsey Page 41
DSHELL Version 4.0
DSHELL Startup - PROFILE.SHL
The DSHELL script PROFILE.SHL is executed on initial DSHELL
creation. It must be located in the DSHELL directory, normally
C:\DSHELL. This script provides the base environment for the
DSHELL and any environment variables, aliases, command defaults,
and menus defined in the profile will be available at all DSHELL
levels unless subsequently changed or deleted.
As the PROFILE.SHL script provides the environment and setup for
DSHELL, it is almost certain that you will want to modify it for
your particular system (such as create your own menus to always
be available or start special jobs automatically when you start
up DSHELL). Two methods are available to perform this
customization.
The recommended method is to use the FILE Operations - DSHELL -
Change Profile (really a .SHL script itself) to maintain and
modify your PROFILE.SHL. This script provides considerable
support for making the modifications (such as menus of changes
and directions on likely command formats), eliminates much of
the hassle of trying to figure out what command parameters do
you need to set for a particular function, and maintains an
orderly structure to your PROFILE.SHL. Maintaining this
structure is particularly important when you upgrade to future
versions of DSHELL as it greatly enhances the INSTALL program's
ability to make any necessary modifications for the new DSHELL
version without losing any changes you may have made.
As the PROFILE.SHL is a .SHL script, you can modify it as you
desire with your text editor. While this is the most
expeditious method, it does require considerable understanding
of the operation and commands in DSHELL. It can also provide
problems when you upgrade DSHELL since the new version could
need to make changes in the PROFILE.SHL and, if you have edited
your own PROFILE.SHL, these changes would have to be manually
mapped into the new PROFILE.SHL. Unless you really feel the
need to edit PROFILE.SHL directly, this method is best avoided.
The following sections describe the different components
normally found in the PROFILE.SHL script. The discussion and
explanations assume you use the Change Profile to maintain your
PROFILE.SHL. The script creates a safe copy of the PROFILE.SHL
information for subsequent modification and presents a set of
menus for modifying these components. After you have completed
your modifications, you select the ExitHelp menu and chose
either to implement the new PROFILE.SHL or discard your changes.
Remember than any changes you make to PROFILE.SHL will not be
effective until you leave and re-start DSHELL.
Besides the ExitHelp menu, Change Profile presents 6 additional
menus for modifying the six sections of the PROFILE.SHL script.
The contents of these sections and the associated menus are
discussed in the next six sections. When making the actual
changes, there is no need to follow the order of this section --
you can jump around from menu to menu as you desire. You can
Copyright 1991 (C) D. G. Dempsey Page 42
DSHELL Version 4.0
even go back to the main DSHELL process but do not try to run
two Change Profile sessions at the same time!
Copyright 1991 (C) D. G. Dempsey Page 43
DSHELL Version 4.0
Menu Colors - Setting the Screen Colors
DSHELL is a DESQview specific process and its screen colors can
either be defined by the DESQview SETUP program or by the
ATTRIBUTE command within DSHELL. There are eight different
fields that can be displayed in different colors and intensities
within DSHELL (see the ATTRIBUTE command for the eight fields)
to differentiate between files, directories, and menus for
instance.
The menu Colors offers three choices for the color set: (1) use
+----------------+
|Colors |
| use Desqview |
| use Standard |
| use Current |
| Modify current |
| View current |
| Help |
+----------------+
the DESQview Default colors (no ATTRIBUTE commands in
PROFILE.SHL), (2) use the Standard DSHELL color set (picks a
"nice" set of ATTRIBUTE commands for PROFILE.SHL), and (3) use
the Current color set (create ATTRIBUTE commands to match
whatever colors are currently in use). Assuming you select
either of the last two options, you can select the View or
Modify entries to allow you to examine and further change (with
Modify) the color set. When you select View or Modify, a window
+------------------------------------------------+
| Field Text Background|
|>1 Normal A Normal Q Normal|
| 2 Directories B Normal R Normal|
| 3 Volume C Normal S Normal|
| 4 Options D Normal T Normal|
| 5 Special Files E Normal U Normal|
| 6 Selected Fields F Normal V Normal|
| 7 Menus G Normal W Normal|
| 8 Help & Misc H Normal X Normal|
| I Normal |
| J Normal |
| K Normal |
| L Normal |
| M Normal |
| N Normal |
| O Normal |
|(END to exit) P Normal |
+------------------------------------------------+
will appear showing the eight fields and the possible color
selections. You can then select the field and appropriate
foreground and background colors as you desire. Selections can
be by keystroke or mouse. Select or press the END to exit the
color selection program. Remember that none of the changes you
make will become effective until you have selected Exit and
restarted DSHELL.
Copyright 1991 (C) D. G. Dempsey Page 44
DSHELL Version 4.0
Menu EnvVars - Setting Environment Variables
Several special shell variables are normally defined in the
PROFILE.SHL. These variables are in addition to any DSHELL may
have inherited from DOS which will not explicitly appear in your
PROFILE.SHL. They include:
ECHO if defined, causes DSHELL script lines to be listed on
stderr (/dev/con) as encountered. Otherwise, no echoing of
DSHELL script lines occurs (the opposite of the DOS COMMAND.COM
default). This can be useful for debugging a .SHL script but
does clutter up the screens and slow things down.
PATH defines command search path, see DOS COMMAND.COM
description. Note that, in the DSHELL, this is set as a shell
variable, not a special PATH command. Normally, this variable
will be set by DOS in the environment and it will not be
necessary to include it in your PROFILE.SHL file explicitly.
COMSPEC defines location of COMMAND.COM for .BAT files ala DOS.
Normally, this variable is inherited from DOS and you need not
define it explicitly. If you do not have it defined in DOS, you
may need to define it to get .BAT and other internal DOS
commands to work correctly.
HOME defines the home directory for cd commands. If omitted, the
cd command with no argument will not cause a directory change.
ESCSPC defines the character used to escape codes in ECHO and
EXPR functions. If omitted, the backslash (\) is used.
ESCCMD defines the character used to escape codes in command
line processing. If omitted, the tilde (~) is used.
RUN_KEY if defined, full screen menu and history selects by
keystroke are executed rather than only copied to the command
line. If you maintain your PROFILE.SHL through the Change
Profile program on the SYSTEM menu, this variable is controlled
through the OTHER menu and will not explicitly appear in the
ENVARS lists.
SH_DIR defines the drive and directory which contains the DSHELL
files. You should not change this variable or delete it unless
you are VERY confident about what you are doing. If you
maintain your PROFILE.SHL through the Change Profile program on
the SYSTEM menu, this variable will not explicitly appear in the
EnVars lists.
DV_DIR defines the drive and directory which contains the
DESQview files. You should not change this variable or delete
it unless you are VERY confident about what you are doing. If
you maintain your PROFILE.SHL through the Change Profile program
on the SYSTEM menu, this variable will not explicitly appear in
the EnVars lists.
SH_TMP defines the drive and directory containing the DSHELL
Copyright 1991 (C) D. G. Dempsey Page 45
DSHELL Version 4.0
scratch directory. This is normally the C:\DSHELL\TMP
subdirectory. You can move this to another location by
redefining this variable but it is not recommended.
UNIQUE set to an eight character name that is unique to that
DSHELL task. This can be used to construct unique filenames for
scratch files. This variable is created by the DSHELL process
automatically.
BACKGROUND if defined, processes created by DSHELL will be
bottom most in the DESQview window stack. This is most useful
for scripts that themselves run as background jobs and do not
want to disturb the user with an onslaught of task windows.
In addition to these variables, you can define any you desire
for your own use subject the limitation of 2K of environment
space. Any environment variables you define in the PROFILE.SHL
will be passed to programs and scripts during your session just
as they would be in DOS.
To view the current variable definitions in your profile, select
+-----------------+
|EnvVars |
| Edit variables |
| View variables |
| Add variable |
| Delete variable |
| Help |
+-----------------+
the View entry on the EnvVars menu. You can select the Add and
Delete options to add and delete environment variable
definitions or, to edit the definitions select the Edit entry.
The current definitions, with a preamble describing the format
of environment variables, will appear in your editor for
editing. Remember that any entries you add should be on a line
by themselves (one per line is best) and each line should be
followed by a newline (blank lines are okay too). The last menu
selection, Help, simply describes the others.
Copyright 1991 (C) D. G. Dempsey Page 46
DSHELL Version 4.0
Menu Aliases - Defining Command Aliases
In addition, the profile should also define any aliases desired
by the user, such as LF, emulation of COMMAND.COM commands (dir,
for instance, is really an alias for command /c dir), and other
commands. One alias in particular, EDIT, must be defined to be
the actual command to be used to invoke your text editor. Many
aliases are defined in the default PROFILE.SHL built during
installation. These may be changed or added to as desired.
As with the EnvVars menu, you can select View, Add, Delete,
+--------------+
|Aliases |
| Edit aliases |
| View aliases |
| Add alias |
| Delete alias |
| Help |
+--------------+
Edit, or Help on the Aliases menu. The behavior is identical
with the exception that you will be defining aliases with the
ALIAS command instead of environment variables with the =
command.
Copyright 1991 (C) D. G. Dempsey Page 47
DSHELL Version 4.0
Menu Defaults - Defining Default Commands
If you use a mouse and operate DSHELL in full screen mode, you
may select files with the EXECUTE mouse button, and, depending
on the file's extension, specify a default command to be
executed when a file of that type is selected. See the internal
command SHMOUSE for information on setting up default commands.
Remember that any file extension types which are not covered in
the default list will be processed by prefixing the file name
with the command EDIT which (normally invoke your editor to edit
that file). It is not possible to change the DSHELL preset
defaults for executable files and directories.
Like the EnvVars and Aliases menus, you can select View, Edit,
+---------------+
|Defaults |
| Edit defaults |
| View defaults |
| Add default |
| Delete default|
| Help |
+---------------+
Add, Delete and Help on the Defaults menu. You are limited to
approximately twenty default definitions (too many results in a
complaint from SHMOUSE during PROFILE.SHL execution).
Copyright 1991 (C) D. G. Dempsey Page 48
DSHELL Version 4.0
Menu Menus - Creating/Changing Your Own Menus
If you run DSHELL in full screen mode, your drop down menus will
normally be defined in the PROFILE.SHL script so that they will
be available for your later use. The SHMOUSE command is used to
define first the menu header and then the menu entries for each
menu. The initial SYSTEM menu defined in your initial
PROFILE.SHL can be modified or enhanced by editing them just as
new menus can be added.
+-------------------------------------------------------------+
|Modifying the SYSTEM menu should be avoided if possible, |
|however, because a future upgrade to DSHELL might change this|
|menu, leading to conflicts and manual editing by you to fully|
|install the upgrade. |
+-------------------------------------------------------------+
If you select your menus and menu entries by keystrokes, you
should have some common method of indicating what keystroke(s)
select which entries. For the menus built by the installation
program in your initial PROFILE.SHL, the capitalized letter(s)
is generally that keystroke but you can choose any memory jogger
you prefer.
When you first drop the Menus menu, it offers the selection of
+-------------------+
|Menus |
| select 1 SYSTEM |
| select 2 General |
| select 3 (Unknown)|
| select 4 (Unknown)|
| select 5 (Unknown)|
| select 6 (Unknown)|
| select 7 (Unknown)|
| Help |
+-------------------+
which of the seven menus you wish to work on (the selections
labeled "unknown" correspond to menus you have not yet defined).
Select which of the seven you wish to work on by number or
mouse, and, if that menu has not yet been defined, you will be
prompted for a suitable 8 character title for that menu. Once
you have selected a particular menu (1 for SYSTEM in this
example), the Menus menu (we got too many "menus" here!) offers
+------------------+
|Menus |
| Unselect 1 SYSTEM|
| Change menu title|
| Remove menu |
| Edit menu |
| View menu |
| Add menu entry |
| Delete menu entry|
| Help on menus |
+------------------+
the options of Unselecting the chosen menu (so you can work on
other menus), Changing the menu's title, Deleting the menu
entirely, Editing the menu's selections, Adding menu entries,
Copyright 1991 (C) D. G. Dempsey Page 49
DSHELL Version 4.0
Deleting menu entries and Viewing the menu's selections are the
options offered on this menu.
Copyright 1991 (C) D. G. Dempsey Page 50
DSHELL Version 4.0
The Menu Other - General and User Custom Operations
The PROFILE.SHL script is the ideal place for creating any other
processes that you normally wish to have running whenever DSHELL
is running. The optional provided SPOOLER program is an example
but, depending on your needs, you can start others.
CAUTION: Unless you want the process(es) to run to completion
before getting a command prompt (or do not wish to ever get a
DSHELL command prompt!), start these processes in background
(i.e., with a & after the command).
The Other menu offers options for Enabling/Disabling the spooler
+-------------------+
|Other |
| >>Autoload spooler|
| >>Run on keyselect|
| >>start Fullscreen|
| >>left eXecute |
| edit User section |
| Help on other |
+-------------------+
(usually the spooler is used for queuing printer operations but
you can use for any commands you want done one at a time
sequentially), selecting the option of Running keyboard selected
menus entries on keystroke selection (or requiring an additional
eNter keystroke to begin their execution), and starting DSHELL
in Full screen or Command line mode. The final selection, EDIT
User section, allows you to setup and edit a section with your
custom commands (such as automatic process startups discussed
earlier in this section).
Copyright 1991 (C) D. G. Dempsey Page 51
DSHELL Version 4.0
Menu ExitHelp - Completing/Aborting the Changes
After you have completed making your changes using the first six
menus, you must select the seventh menu, ExitHelp, to complete
+-------------------+
|ExitHelp |
| Exit, new profile |
| Drop changes, exit|
| Help |
+-------------------+
the process. Select Exit to make your changes official or Drop
to forget them and just quit. If you do not do this, the
changes will not become effective and will be lost the next time
you invoke Change Profile. Again, remember that you must exit
DSHELL and re-invoke it to see the effect of any changes in
PROFILE.SHL.
+----------------------------------------------------------------+
|Warning: DO NOT attempt to re-execute PROFILE.SHL from your |
|command line - some operations usually defined there do not like|
|to be done twice and may misbehave if you attempt the |
|re-execution. |
+----------------------------------------------------------------+
Copyright 1991 (C) D. G. Dempsey Page 52
DSHELL Version 4.0
Common Questions/Problems
Any program like this is bound to have a few "unfixable" bugs.
Among the most noticed are the following "features".
Program Startup Problems
Some programs are very particular about their invocation and, if
invoked by the DSHELL, will act strangely about identifying
their arguments or report insufficient memory. These programs
generally do not load successfully when using the EXEC function
in DOS (which is used by DSHELL loaders to load other programs).
DOS external commands, such as format, diskcopy and sort, are
particularly fussy in some DOS implementations. If you
encounter this problem, the most frequent solution is to invoke
the command through an alias such as command /c format or,
better yet, an appropriate SPAWNPIF.SET entry. This forces the
program to be loaded by command.com which usually satisfies
these programs.
How do I determine if a program needs special treatment (like a
special .DPF or SPAWNPIF entry)? -- The easiest solution is try
it and see if it misbehaves (does not run, blows up, writes all
over the screen in a small window (not likely on 80386 or later
processors), etc.). If it does misbehave (and assuming the
program can be run under DESQview), then you have two options:
(1) create a special .DPF with an associated SPAWNPIF entry (see
the section Controlling the Process Environment) for that
program, or (2) if you already have a DESQview menu entry to run
that program, just start the program by typing the DESQview
PIF filename (XX-PIF.DVP) where XX selects the program from the
DESQview menu. In the second case, you may have to prefix the
PIF filename with the DESQview directory path if your PATH does
not include the DESQview directory. Generally, if option 2
works, you can do option 1 by creating the appropriate .DPF
using the ADD SPAWN menu in the FILE OPERATIONS menus.
Exceptions are usually programs requiring special DESQview
provided loaders which are probably best left to the second
option.
My graphics mode programs don't run in background -- Many
combinations of video adaptors, DESQview version, and
particular graphics mode programs seem to work reliably only
when restricted to foreground execution. For that reason, the
default 00-PIF.DPF environment prohibits virtual operation when
a program is in a graphic video mode. Assuming your system does
not have that problem (trying is the only way to tell!), you can
get background execution by changing the "Virtualize Graphics"
option in the default .DPF (go to FILE OPERATIONS - DSHELL -
EDITPIF menu and select the 00-pif.dpf file to change). One
word of caution -- sometimes everything is fine when only one
graphics mode program is running but problems ensue (lockups!)
when two are running.
My programs don't run in background -- If you have a 8088, 8086,
80286 or other pre-80386 processor, or if you are not using an
Copyright 1991 (C) D. G. Dempsey Page 53
DSHELL Version 4.0
EMS capable of supporting DESQview screen virtualization, the
default PIF (00-pif.dpf) setup by DSHELL will not run in
background because DESQview is unable to virtualize the screen.
Only programs which do not write directly to the screen can be
safely run in background in your situation. The best solution
would be to acquire a 80386 or later system (or change to one of
Quarterdeck's QEMM EMS products that supports screen
virtualization if that's the problem). If you cannot do that,
you can still get your well-behaved programs (see your DESQview
manual for that definition) to run in background by telling
DSHELL to use a PIF for those programs that does not ask for
screen virtualization. To do, go to the File Operations menus,
Tag all programs that satisfy the well-behaved criteria (if they
are in various directories, tag the ones in each directory
before going to the next directory), then drop the DSHELL menu
and execute the "Tagged -> spawnpif" entry. A new menu will
appear to handle the options for adding programs (what you have
tagged) to the special treatment spawn list. Execute the line
"Current dpf 00" to change the PIF. A list of the current PIFs
available and "New" will appear. Click the "New" line with the
mouse EXECUTE button. When the DESQview Edit Pif screen
appears, change the lines "Writes text directly to screen",
"Displays graphics information" and "Virtualize text/graphics"
(the latter only if it appears in your system) to N for no.
Press ENTER to complete the PIF edit. When the
"Tagged->spawnpif" menu reappears (it will show the number of
your new PIF), execute the line "Save changes, exit" to complete
the operation. Those programs should now run in background.
You can add additional programs latter, just re-use the same PIF.
QEMM errors while running DSHELL with STEALTH -- If you have
upgraded to QuarterDeck's QEMM 6.0 and activated the STEALTH
feature, you may get a QEMM fault when DSHELL performs some disk
I/O operations. Follow the QEMM suggested fix of adding the
parameter "DBF=2" (the suggestion) to the QEMM startup line in
your CONFIG.SYS file. QEMM in STEALTH mode does not support
direct I/O to the EMS page frame without that parameter.
Microsoft Windows does not start from commad line (typing "win")
-- Under DESQview, Windows requires special treatment and
sometimes a special loader to run properly. It is easiest to
start Windows using the DESQveiw OPEN menu or by invoking its
DESQview provided PIF (usually c:/dv/w3-pif or c:/dv/wr-pif) at
the DSHELL command line.
Program aborts when used with an inter-process pipe -- When a
process is started with piped input or piped output, it must
for the other process to startup (the process at the other end
of the pipe). If the other process does not successfully start,
or if your machine is delayed by some very slow activity, the
waiting process will eventually timeout and report the failure.
Check the other process to see why it failed or was so slow to
start up. Slow operations can sometimes be due to other jobs
tying up the disks, preventing new processes from loading.
This is especially noticeable on some machines when doing
heavy floppy disk I/O.
Copyright 1991 (C) D. G. Dempsey Page 54
DSHELL Version 4.0
Some Command Parameters/Filenames Don't Work
Programs don't work on filenames containing certain characters
(like $ , ~ and ') -- The DSHELL command interpreter is seeing
the special characters, which have special meaning to it, and
changing the filename in the process. To prevent this, enclose
the filename with CNTRL X and CNTRL Y as you type it (the
control characters appear as up and down arrows on the screen
respectively). That will prevent the command interpreter from
seeing the special characters and clobbering the filename (the
two CNTRL characters are not passed to your program). Note that
this is generally not needed when invoking from the predefined
menus -- their scripts or menu commands have included the
delimiters already.
The command "dir/w" does not work -- DSHELL does not consider
the "/" to be a field separator. It will inteprete the command
as look for "w" in the "dir" directory. Type "dir /w" (with the
space) instead. Also, beware of passing DOS programs pathnames
with "/" instead of "\" as the path separators. DSHELL is happy
with either as are many DOS programs but some are not.
Screen Display Problems
When program "xxx" runs, I get text in other windows or that
stays on the screen after the program ends -- Programs which
write directly to the screen (bypassing the DOS or BIOS
routines) can not be run cleanly in DESQview with TEXT
VIRTUALIZATION turned off (or on pre-80386 processors without a
special DESQview loader). If you are using a special .DPF (or
have modified the supplied default 00-PIF.DPF), you must have
TEXT VIRTUALIZATION marked YES to run those programs cleanly on
a 386 style processors. For 286 or early processor types,
contact DESQview about the availability of a loader for your
program.
After I finish running a graphics display program, my DSHELL
display is half off the screen -- Sometimes, when changing video
modes to accommodate graphics display programs, DESQview changes
the size and position of other processes' windows. When that
happens, you can ZOOM the window (DESQ key followed by Z) to
recover the window or do a window move and resize.
Printer Problems/Questions
I have changed my printer, how do I redefine the formAt options?
-- To define a new printer type on a port (such as PRN) that
you have previously defined a printer for, you must go to the
DSHELL temp directory (normally C:\DSHELL\TMP) and remove the
"DEVdir" directory (like prndir) for that port. Then go to the
File Operations-Print menu and define your new printer.
My printer is not on the formAt list (or does not work with the
type picked on that list) -- If your printer is not listed, use
the closest that works (Generic is the same as DOS's print).
Copyright 1991 (C) D. G. Dempsey Page 55
DSHELL Version 4.0
While the printer types shown are believed to work, the options
are based on formats received from other users and cannot be
guaranteed. You can add new printers (and options for existing
printers) by modifying the file PRINTERS.LST in the INSTALL
directory (the format is printer name (no spaces), the word
"prtcat", the driver name (generally "prtcat" again except for
postscript printers) followed by pairs of the format filename
and format setup string (as an argument to the ECHO command)).
If you do navigate through adding a new printer type and send
me the modified PRINTERS.LST file, I'll add it to our list and,
provided you are a registered DSHELL owner, send you a free
update of DSHELL.
Copyright 1991 (C) D. G. Dempsey Page 56
DSHELL Version 4.0
License Agreement and Support
The version of DSHELL uploaded herein is a shareware version
intended for evaluation purposes. This version has all the
functionality described in this manual. The user assumes all
responsibility for the use and results of using this evaluation
software. You may use this evaluation software for your
personal evaluation and unsupported use but not for commercial
purposes (i.e., sale). If you desire a supported version, see
the next paragraph. You may pass this evaluation version on
to others for their personal evaluation provided it is passed
unchanged and its in entirety and no significant charge is
associated with the passing.
If you find DSHELL useful, a single user license is available
for a license fee of $50.00 which includes both the latest
version of the software and a printed manual. The license also
entitles the registered user to upgrades to new versions of the
DSHELL program and reasonable support on DSHELL related problems.
The DSHELL software (Copyright (C) 1991, 1992 D. G. Dempsey, All
Rights Reserved) remains the property of the author. The
license grants the registered user the right to (1) make
archival copies as necessary, and (2) use the software on one
machine (or multiple machines provided only one machine with the
software is active at any one time). The registered user, by
the act of acquiring the license, assumes all responsibility for
the use and results of using the DSHELL software, and agrees
that the author's responsibility for any liability related to
this software shall be limited solely to the refund of the
license fee upon return of said software.
A registered user can obtain an upgrade to the latest version of
DSHELL software by either (1) by sending $15.00 to the author, or
(2) by sending the original disk and a suitable self-addressed
prepaid disk mailer to the author.
To become a registered user and obtain a fully functional
current copy of the DSHELL software and manual, print and complete
the LICENSE.FRM form in the accompanying file. Send the
completed form, indicating the format of disk desired (1.2M 5.25
inch or 720K 3.5 inch), accompanied by a U.S. bank check or
money order for the appropriate amount to the author:
D. G. Dempsey
P. O. Box 873
Bedford, TX 76095
Please allow four weeks for delivery. Texas residents should
include appropriate sales tax (currently 7.75%).
If you have questions or problems, you can get assistance by
sending mail on the COMPUSERVE system to the author at
Compuserve address 70701,1726.
Copyright 1991 (C) D. G. Dempsey Page 57
DSHELL Version 4.0
Table of Contents
The following lists the table of contents for the full DSHELL manual.
Sections included in the uploaded abbreviated version are marked with
an asterisk (*).
Introduction to DSHELL *
About This Manual *
Installing DSHELL *
System Requirements *
Performing the DSHELL Installation *
DSHELL Tutorial *
Managing the DSHELL Screen Display *
Normal Mode *
Full Screen Mode *
Running Under DESQview/DSHELL Versus Running Under DOS *
Entering and Executing Commands *
Using Full Screen Mode *
Executing Files and Directories with a Mouse *
Executing/Selecting Command History Entries *
Menu Operations *
Using Menus - The SYSTEM Menu *
DISK OPERATIONS Menus *
FILE OPERATIONS Menus *
FILE OPERATIONS - Tag Menu *
FILE OPERATIONS - Tag Ops Menu *
FILE OPERATIONS - DSHELL Menu *
Example 1: Formatting a Floppy Disk *
Example 2: Copying Files and Directories *
Example 3: Defining a Default Command *
Example 4: Defining a Menu *
Example 5: Running a DSHELL Command From DOS *
How DSHELL Works *
Command Lines, Screens and Menus
Normal Mode - Memories of DOS
Full Screen Mode
The Current Directory Display - Default Commands
The Command History Display
Using Menus
DSHELL Scripts and DOS Batch Files
DSHELL Scripts - .SHL Files
DOS Batch Scripts - .BAT Files
DSHELL Operations
Command Line Entry and Editing
Environment Variables and Substitutions
Flow Control - FOR, IF and SWITCH Commands
Embedded Commands
Command Line Parsing and Aliases
Selecting Foreground or Background Execution
Inter-Process Pipes
Internal Commands
External Commands - Running Programs and Scripts
Search Path
Executing *.DVP Files
Executing *.SHL Scripts
Executing *.BAT Scripts
Copyright 1991 (C) D. G. Dempsey Page 58
DSHELL Version 4.0
Executing *.COM and *.EXE Files
Post Command/Command Line Processing
Controlling the Process Environment
Controlling the Virtual Machine
The Process Description - DSHELL .DPF Files
Mapping Programs to .DPF Files - SPAWNPIF.SET File
Setting a Program's Environment Variables
Disk Paths
Hard Disks
Floppy Disks
Setting the DESQview Window and Title
Tracking Processes
Process IDs - Parents and Children
Getting the Program's Return Code
Inter-Process Communications
Sending Keystrokes to a Process
To a Child Process
To the Current Foreground Process
Sending/Receiving Inter-Process Messages
With DSHELL Scripts - .SHL Files
With DESQview Specific Programs
Inter-Process Pipes
Redirection of STDIN and STDOUT
Named Pipes
Controlling Resources - Semaphores
DSHELL Startup - PROFILE.SHL *
Menu Colors - Setting the Screen Colors *
Menu EnvVars - Setting Environment Variables *
Menu Aliases - Defining Command Aliases *
Menu Defaults - Defining Default Commands *
Menu Menus - Creating/Changing Your Own Menus *
The Menu Other - General and User Custom Operations *
Menu ExitHelp - Completing/Aborting the Changes *
Common Questions/Problems *
Program Startup Problems *
Some Command Parameters/Filenames Don't Work *
Screen Display Problems *
License Agreement and Support *
DSHELL COMMANDS
ACQUIRE - Acquire semaphore ownership
ALIAS - Define an alias for a command
ATTRIBUTE - Set screen colors
BACK - Move process to background
BUTTON - Define mouse button usage
CAT - Type/concatenate files
CD - Change disk and/or directory
CHMOD - Change file attributes
CLS - Clear window
CP - Copy files/directories
DATE - Display/set date
DOT (.) - Run .SHL script in current process
DSHELL - Issue DSHELL command from DOS/program
DUMP - Show file in hex
DVJOB - Set DESQview window parameters
ECHO, ECHON - Display text
EDITOR - Support multifile editors
Copyright 1991 (C) D. G. Dempsey Page 59
DSHELL Version 4.0
EXIT - Exit a .SHL script
EXPR - Evaluate arithmetic/string compare
FFIND - Find files/directories
FILENAME - Add path to filename
FOR, BREAK, DONE - Loop over values/forever
FORE - Make a process foreground
IF, AND, ELSE, FI - Conditional commands
IGNORE - Ignore error exits
LINE - Read line from keyboard/file
LS, LF - List directories
MAILBOX - Name a mailbox
MEMORY - Report memory usage
MKDIR - Make directories
MV - Move/Rename files/directories
PAUSE - Wait operator permission
PIDNAME - Get DESQview taskhandle
PRINT - Spool files to printer
PUSHKEY - Send keys to foreground process
PUTKEY - Send keys to specified process
PWD - Show current directory
PWDS - Show current directory without slash
QUERY - Get current window parameters
READMAIL - Read inter-process mail
RELEASE - Release a semaphore
REMOVE - Friendly file/directory removal
RM - Remove files/directories
RMDIR, RD - Remove directories
SENDMAIL - Send inter-process mail
SET - Redefine .SHL parameters
SETSCREEN - Set window for next process
SETTITLE - Set title for next process
SH - Start another DSHELL process
SHELL VARIABLE - Environment variables
SHIFT - Shift .SHL arguments
SHMOUSE - Define menus/command defaults
SHUSER - Convert .SHL script to user mode
SLEEP - Sleep/Wait for specified time
SOUND - Make a sound
SPOOLER - Start print/command spooler
SWITCH, CASE, EXITSWITCH, ENDSWITCH - Conditionals
TEST - Test argument/file properties
TIME - Get/set time of day
TOUCH - Change file timestamp
TRUE - Always true
UNFLOPPY - Forget/unmount floppies
VIEW - File viewer
WAIT - Wait process complete/exit code
WC - Count words, lines, characters in files
Appendix A: PUSHKEY/PUTKEY SPECIAL CODES
Appendix B: Video Attribute Mapping
Copyright 1991 (C) D. G. Dempsey Page 60